GitHub ↗ ← 返回

The Hidden Gems in the Windows Source Code.ass

Enderman/The Hidden Gems in the Windows Source Code.assASS共 525 条字幕
样式信息 (3)
Enderman-CN-C
名称Enderman-CN-C字体更纱黑体 SC字号115主色&H0000EAFF辅色&H000000FF描边色&H00000000背景色&H00000000粗体0斜体0下划线0删除线0水平缩放100垂直缩放100间距0角度0边框样式1描边1.6阴影0.8对齐2左边距0右边距0垂直边距20编码1
Enderman-CN
名称Enderman-CN字体更纱黑体 SC字号115主色&H0000EAFF辅色&H000000FF描边色&H00000000背景色&H46000000粗体0斜体0下划线0删除线0水平缩放100垂直缩放95间距0角度0边框样式3描边0阴影1对齐2左边距0右边距0垂直边距20编码1
Enderman-EN
名称Enderman-EN字体更纱黑体 UI SC字号96主色&H00FFFFFF辅色&H000000FF描边色&H5B000000背景色&H46000000粗体0斜体0下划线0删除线0水平缩放100垂直缩放95间距0角度0边框样式3描边0阴影1对齐2左边距0右边距0垂直边距20编码1
#10:00:00.080:00:06.76Enderman-CN-C
{\fs200\fad(200,200)\c&HFFFFFF&\pos(1908,568)}本视频仅供教育用途
#20:00:00.080:00:06.76Enderman-CN-C
{\fs200\fad(200,200)\c&HFFFFFF&\pos(1884,1934.667)}Windows是微软公司的注册商标\N
分享Windows源代码是非法且极其不鼓励的行为
#30:00:06.760:00:14.04Enderman-CN-C
{\fad(200,0)}翻译/压制/字幕制作:HAF半个水果
#40:00:15.230:00:19.23Enderman-CN
{\fad(200,200)\pos(1933.334,224)}使用AI工具翻译,如有不准确的地方请在弹幕或评论区指正,谢谢!
#50:00:19.610:00:24.61Enderman-CN
{\fad(200,200)\pos(1933.334,224)}翻译质量权威评价:原来25年就有小拉即用机翻糊弄人了
#60:00:14.480:00:19.70Enderman-EN
Hello everybody. In this video
#70:00:20.540:00:24.96Enderman-EN
Yes
#80:00:25.360:00:26.89Enderman-EN
but it's illegal to share it.
#90:00:27.550:00:29.05Enderman-EN
How did that happen?
#100:00:29.570:00:33.38Enderman-EN
Well
#110:00:33.770:00:39.35Enderman-EN
and a bunch of anonymous brave souls compiled it and confirmed that it was indeed Windows XP.
#120:00:39.980:00:43.20Enderman-EN
It lacked the source code for a couple applications here and there
#130:00:43.580:00:47.19Enderman-EN
but the pioneers filled in the blanks and managed to get it going.
#140:00:47.910:00:51.33Enderman-EN
NCD also dared to upload a video demonstrating
#150:00:51.770:00:55.62Enderman-EN
the build process
#160:00:56.610:00:58.28Enderman-EN
Microsoft tickled him a bit.
#170:00:59.280:01:02.08Enderman-EN
So
#180:01:02.320:01:05.16Enderman-EN
but I have not seen anyone examine the source code yet
#190:01:06.470:01:08.70Enderman-EN
and I volunteered to be the guy
#200:01:09.490:01:14.22Enderman-EN
because with open-source software
#210:01:14.580:01:16.29Enderman-EN
since they've got better things to do.
#220:01:17.790:01:19.82Enderman-EN
Let's just make it clear before we start.
#230:01:20.280:01:24.56Enderman-EN
This video is made for educational and entertainment purposes only.
#240:01:24.890:01:28.33Enderman-EN
You will not learn much
#250:01:29.160:01:32.63Enderman-EN
So
#260:01:33.040:01:36.64Enderman-EN
and the first thing I started looking for were profanities.
#270:01:37.490:01:39.24Enderman-EN
We all had struggles writing code
#280:01:39.510:01:43.90Enderman-EN
and maybe Microsoft employees wanted to let off some steam while coding.
#290:01:44.300:01:47.32Enderman-EN
I know for sure the Linux source code has profanities
#300:01:47.690:01:49.12Enderman-EN
and in fact
#310:01:49.650:01:55.28Enderman-EN
And there was a paper analyzing a correlation between the count of profane words in the code
#320:01:55.280:01:56.85Enderman-EN
and the quality of said code.
#330:01:57.250:02:01.80Enderman-EN
It's super fun. Anyway
#340:02:02.330:02:06.78Enderman-EN
There is a file called poo.txt containing a single word
#350:02:12.180:02:15.24Enderman-EN
profound. I really don't know why that file exists
#360:02:15.390:02:17.81Enderman-EN
because there are no direct references to it.
#370:02:18.300:02:22.58Enderman-EN
But actually
#380:02:22.860:02:25.15Enderman-EN
antiGDI is not going to work without it.
#390:02:25.650:02:31.00Enderman-EN
No way. Keep random out of this subdirectory or die.
#400:02:31.130:02:33.91Enderman-EN
Well
#410:02:37.100:02:39.43Enderman-EN
There is some ugly * going on here.
#420:02:39.840:02:43.75Enderman-EN
And obviously that's GUI code. Of course
#430:02:44.380:02:47.88Enderman-EN
We also get a bunch of um dictionaries.
#440:02:50.120:02:53.36Enderman-EN
made for profanity filters and slur filters.
#450:02:53.380:02:56.99Enderman-EN
This don't work because you can't edit a just inserted I frame.
#460:02:57.220:03:03.74Enderman-EN
Create a bunch of * and then insert the iframes and make them pretty and then do this *
#470:03:03.860:03:05.05Enderman-EN
That's the same file
#480:03:06.180:03:16.21Enderman-EN
Window * and then you get the W&D pros the message handler for the GUI window in win API.
#490:03:16.590:03:19.71Enderman-EN
Initialize the event log so we can log *
#500:03:24.240:03:30.51Enderman-EN
This is a good one. Needed because com control is a stinking piece of *
#510:03:32.640:03:34.24Enderman-EN
Yeah
#520:03:34.240:03:35.79Enderman-EN
pretty rough. I can agree.
#530:03:36.850:03:38.67Enderman-EN
BFID_RGB
#540:03:42.740:03:44.57Enderman-EN
And that's it for shits
#550:03:44.850:03:46.99Enderman-EN
So the next word I searched for was
#560:03:48.220:03:50.76Enderman-EN
and uh yeah there was nothing
#570:03:50.970:03:52.48Enderman-EN
matching directly
#580:03:52.870:03:54.52Enderman-EN
but were there any derivative
#590:03:54.640:03:56.87Enderman-EN
and no there was nothing
#600:03:57.110:03:59.12Enderman-EN
I decided to look for other words
#610:03:59.520:04:05.17Enderman-EN
like the rword and um I noticed they actually used the word correctly
#620:04:05.470:04:07.19Enderman-EN
they're using the word retard
#630:04:07.980:04:13.10Enderman-EN
to say they're slowing down the thread creation delay for a little bit. So it's not a curse word here.
#640:04:15.480:04:18.14Enderman-EN
same case here. They're also saying they're
#650:04:19.730:04:24.75Enderman-EN
slowing down or you know just decreasing the bite count to resend the last bite.
#660:04:25.340:04:27.58Enderman-EN
They're just using the word retard for that.
#670:04:27.950:04:29.91Enderman-EN
And the rest of the
#680:04:30.930:04:33.70Enderman-EN
matches are from dictionaries. Yeah
#690:04:34.540:04:38.24Enderman-EN
they're clean on the R word. Then I looked for the word hell
#700:04:41.150:04:43.45Enderman-EN
we get what the hell.
#710:04:43.680:04:48.30Enderman-EN
This is this looks like the commit history and one of the commits is called what the hell?
#720:04:48.500:04:50.85Enderman-EN
We didn't find anything in the given restore path.
#730:04:51.240:04:55.29Enderman-EN
Check the SZ atomic new subdirectory. What the hell is this?
#740:04:55.720:04:59.58Enderman-EN
As we can see the coordination of the employees was unmatched.
#750:04:59.890:05:05.61Enderman-EN
But to be fair
#760:05:06.230:05:08.30Enderman-EN
not super shameful
#770:05:08.560:05:13.77Enderman-EN
That's it for hell
#780:05:14.140:05:17.23Enderman-EN
What about heck? What the heck? Let him change it.
#790:05:18.230:05:23.13Enderman-EN
This shouldn't ever happen
#800:05:23.430:05:26.62Enderman-EN
So
#810:05:27.210:05:30.02Enderman-EN
nothing super stinky about this.
#820:05:30.630:05:33.70Enderman-EN
Oh
#830:05:33.830:05:36.13Enderman-EN
Append to message. It's hex.
#840:05:36.510:05:38.37Enderman-EN
Look at the ASCII table. It makes sense.
#850:05:38.830:05:41.78Enderman-EN
There's probably a cute way to do this in a loop.
#860:05:42.200:05:44.02Enderman-EN
But what the heck? I'm lazy
#870:05:44.720:05:46.01Enderman-EN
or stoopid
#880:05:48.400:05:52.76Enderman-EN
This is so cute. This This word is really cute. I love this word stoopid
#890:05:53.750:05:55.44Enderman-EN
And they are doing some
#900:05:57.500:06:00.74Enderman-EN
hacky looking stuff even though it's just arithmetics.
#910:06:02.310:06:04.19Enderman-EN
We can find more hacks if we want to.
#920:06:04.780:06:06.75Enderman-EN
So
#930:06:06.960:06:08.38Enderman-EN
Someone couldn't find the library.
#940:06:08.660:06:10.31Enderman-EN
What the heck do we do with this one?
#950:06:10.650:06:13.15Enderman-EN
Heck
#960:06:13.400:06:17.35Enderman-EN
Heck
#970:06:17.650:06:21.80Enderman-EN
Why the heck does Windows-On-Windows use such an odd error code?
#980:06:22.040:06:23.55Enderman-EN
And that's a magic value.
#990:06:24.340:06:26.66Enderman-EN
Looks like it. I'd be pissed
#1000:06:27.270:06:29.45Enderman-EN
So
#1010:06:30.110:06:32.20Enderman-EN
Lots of surprises in the code base.
#1020:06:32.810:06:37.15Enderman-EN
So
#1030:06:37.540:06:38.67Enderman-EN
What the heck does it mean?
#1040:06:39.260:06:42.57Enderman-EN
So much confusion. Just for the heck of it. Just for the heck of it.
#1050:06:42.970:06:46.35Enderman-EN
Employees also had fun. What the heck? Adding and deleting.
#1060:06:48.390:06:50.00Enderman-EN
What the heck is this option?
#1070:06:50.240:06:53.06Enderman-EN
Just skip over it. Not too unlikely
#1080:06:53.330:06:56.40Enderman-EN
but what the heck? So that's it for the hex I think
#1090:06:56.810:06:58.94Enderman-EN
there was this word in an
#1100:06:59.300:07:02.24Enderman-EN
assembly file. Null pointer assignment
#1110:07:02.370:07:03.22Enderman-EN
fag
#1120:07:03.680:07:05.54Enderman-EN
and a new line and a little terminator.
#1130:07:06.400:07:08.01Enderman-EN
So yeah
#1140:07:09.210:07:10.07Enderman-EN
fag
#1150:07:10.900:07:12.61Enderman-EN
in the entire Windows source code.
#1160:07:13.270:07:17.05Enderman-EN
Luckily
#1170:07:20.240:07:24.49Enderman-EN
So
#1180:07:24.750:07:29.75Enderman-EN
Don't you dare change anything in here or rare will kill you.
#1190:07:30.150:07:34.72Enderman-EN
Holy depends on this. March 25th of 91.
#1200:07:34.940:07:36.19Enderman-EN
Very friendly message.
#1210:07:36.510:07:39.00Enderman-EN
Remember when I promised to kill you last?
#1220:07:39.140:07:40.61Enderman-EN
Looks like they didn't listen.
#1230:07:41.040:07:43.30Enderman-EN
Keep this contiguous
#1240:07:44.400:07:47.79Enderman-EN
Don't make me kill you for reordering the following IDs.
#1250:07:48.090:07:49.83Enderman-EN
Fong has something to say here.
#1260:07:50.630:07:52.55Enderman-EN
Ori
#1270:07:53.130:07:57.46Enderman-EN
How dare you lock a handle twice to get the same ponder without unlocking it?
#1280:07:57.810:07:58.85Enderman-EN
Murder.
#1290:08:00.110:08:03.44Enderman-EN
That's the only occurrence of this word I could find.
#1300:08:05.070:08:10.27Enderman-EN
Be optimistic
#1310:08:10.710:08:15.12Enderman-EN
Note all the definitions defined below are used to make the compiler shut up.
#1320:08:22.910:08:25.57Enderman-EN
just to shut up the compiler. Shut up the compiler
#1330:08:27.530:08:33.22Enderman-EN
that it will shut up. Shut up the compiler. Shut up the compiler. Shut up the compiler to shut up compiler
#1340:08:34.000:08:36.94Enderman-EN
to get prefast to shut up about use of alloc a.
#1350:08:37.330:08:39.83Enderman-EN
Shut up the FM synthesizer.
#1360:08:40.480:08:42.56Enderman-EN
Shut up the compiler. Shut up the compiler.
#1370:08:42.780:08:49.96Enderman-EN
The Microsoft compiler is pretty rough. I also used a couple of pragmas to shut it up with unnecessary warnings.
#1380:08:50.210:08:51.18Enderman-EN
Shut up compilers.
#1390:08:51.310:08:54.66Enderman-EN
Yeah
#1400:08:55.040:08:56.92Enderman-EN
They don't like the compiler
#1410:08:56.960:08:58.88Enderman-EN
being annoying with warnings and stuff
#1420:08:58.880:09:00.07Enderman-EN
so they have to shut it up.
#1430:09:00.490:09:06.12Enderman-EN
That's shut up. I have no idea what a tag of 5 is for. I have no idea why we're doing that.
#1440:09:06.480:09:11.29Enderman-EN
I have no idea why this isn't 1
#1450:09:11.560:09:13.85Enderman-EN
I have no idea what this routine is for.
#1460:09:14.360:09:16.35Enderman-EN
I have no idea what this routine is for.
#1470:09:16.620:09:19.48Enderman-EN
I have no idea who came up with this wonderful scheme
#1480:09:20.530:09:21.99Enderman-EN
but we have to live with it.
#1490:09:22.450:09:30.39Enderman-EN
So base
#1500:09:30.750:09:33.12Enderman-EN
I have no idea what Windows 95 would have done.
#1510:09:33.410:09:37.33Enderman-EN
I have no way of making them any better than this at this point.
#1520:09:37.590:09:40.13Enderman-EN
Who cares? It makes the director happy.
#1530:09:42.000:09:46.04Enderman-EN
Oh my god
#1540:09:46.320:09:50.12Enderman-EN
and nothing has changed in the programming industry
#1550:09:50.280:09:54.72Enderman-EN
and I have no idea whatsoever whether this was just
#1560:09:54.720:09:59.71Enderman-EN
sloppiness or a real requirement and no desire to mess around trying to figure it out.
#1570:10:00.110:10:01.97Enderman-EN
I have no idea on the origin of this
#1580:10:02.480:10:04.80Enderman-EN
or if it is still important.
#1590:10:05.090:10:09.78Enderman-EN
It shouldn't hurt anything to keep it in to save us from some nasty compatibility problem.
#1600:10:10.260:10:13.53Enderman-EN
Why it has to be nine bytes long? I have no idea.
#1610:10:13.590:10:16.94Enderman-EN
This call needs some preparation that I have no time for.
#1620:10:17.350:10:21.61Enderman-EN
I have no idea what's going on here. But for now
#1630:10:21.910:10:25.67Enderman-EN
I have no idea why we need to do this. This code came from Ralph.
#1640:10:25.960:10:31.92Enderman-EN
I have no idea what the error code could be. Put it here if when we find out.
#1650:10:32.080:10:35.23Enderman-EN
I have no idea why it doesn't work if this line is here.
#1660:10:35.490:10:37.52Enderman-EN
Sorry
#1670:10:37.810:10:40.63Enderman-EN
I have no idea how many decibels the range is.
#1680:10:41.330:10:45.09Enderman-EN
I have no idea why it fails after we close this key
#1690:10:45.250:10:48.12Enderman-EN
I have no idea what to put here. Hope this works.
#1700:10:51.380:10:53.82Enderman-EN
I have no idea what that comment means.
#1710:10:54.170:10:57.19Enderman-EN
Oh
#1720:10:57.220:10:58.18Enderman-EN
If you're watching this video
#1730:10:59.440:11:02.82Enderman-EN
I read your blog from time to time. It's super fun.
#1740:11:03.030:11:04.82Enderman-EN
The old new thing you can check this out.
#1750:11:05.440:11:08.87Enderman-EN
Raymond Chen is a is a super based guy.
#1760:11:10.010:11:12.26Enderman-EN
I have no idea what this comment means.
#1770:11:14.230:11:18.36Enderman-EN
This constructor is not used. I have no idea if it even works anymore.
#1780:11:18.640:11:24.02Enderman-EN
Then I looked up how many times the disgust emotion appears and uh
#1790:11:25.040:11:30.68Enderman-EN
quite a bit. Totally disgusting hack in order to catch VK return the enter key
#1800:11:31.390:11:34.80Enderman-EN
before the edit control gets in. Check to see if an
#1810:11:34.800:11:43.36Enderman-EN
absolutely sick
#1820:11:43.950:11:50.11Enderman-EN
This macro really should take a parameter
#1830:11:50.140:11:52.99Enderman-EN
parenthesesless definition of begin.
#1840:11:54.670:11:57.76Enderman-EN
Indexes are a disgusting way to get this info.
#1850:11:58.050:12:03.92Enderman-EN
This is disgusting. But GDI plus needs to be initialized and shut down on the same thread.
#1860:12:04.380:12:07.06Enderman-EN
So we have to create a thread just for this
#1870:12:07.370:12:12.51Enderman-EN
and have it sit around so that we're guaranteed this is the thread we'll do the startup and shutdown on.
#1880:12:12.900:12:15.04Enderman-EN
Disgusting all hackery.
#1890:12:15.860:12:18.64Enderman-EN
Disgusting. There's an explanate.
#1900:12:18.670:12:23.93Enderman-EN
There's an entire hack explanation and in the parenthesis it says disgusting.
#1910:12:24.300:12:26.40Enderman-EN
Another disgusting cludge
#1920:12:26.640:12:32.34Enderman-EN
but works. There's an ugly disgusting hag here making this code aware of the structure.
#1930:12:32.480:12:38.58Enderman-EN
Oh
#1940:12:38.680:12:44.67Enderman-EN
Really? There's even more. Before we get started
#1950:12:44.870:12:50.52Enderman-EN
This is really gross
#1960:12:51.210:12:56.57Enderman-EN
unless we slow down transactions over the network. So
#1970:12:56.960:13:00.26Enderman-EN
Oh my god. Yeah
#1980:13:00.290:13:04.56Enderman-EN
This is rather gross
#1990:13:05.690:13:12.49Enderman-EN
Gross
#2000:13:13.190:13:14.52Enderman-EN
Yeah
#2010:13:14.720:13:18.81Enderman-EN
Oh my god
#2020:13:18.900:13:24.45Enderman-EN
Okay
#2030:13:24.890:13:25.69Enderman-EN
PLJ.
#2040:13:25.920:13:26.81Enderman-EN
I don't know what that means.
#2050:13:26.900:13:28.53Enderman-EN
Gross hack.
#2060:13:28.560:13:37.10Enderman-EN
If we fail to translate in the range
#2070:13:37.320:13:41.01Enderman-EN
Yes
#2080:13:41.230:13:49.64Enderman-EN
The correct thing is for card bus to pass the here via the back door while it has while it has it at the FDO level.
#2090:13:50.040:13:53.93Enderman-EN
Yes
#2100:13:55.230:13:57.04Enderman-EN
but this is a bit gross
#2110:13:57.040:14:03.26Enderman-EN
happens on x86 machines today. And after all
#2120:14:03.440:14:07.15Enderman-EN
This is really gross. We have to do some real gross stuff.
#2130:14:07.780:14:12.19Enderman-EN
This is kind of gross. We're just going to be gross about this until the job finishes.
#2140:14:12.410:14:16.78Enderman-EN
This flag has been added for a gross hack introduced in batch processing.
#2150:14:17.040:14:21.96Enderman-EN
Here is a gross temporary fix to get around the series design flow in the secondary cache.
#2160:14:22.670:14:28.52Enderman-EN
End of gross hack. Alias stuff moved out due to gross bloating of this file.
#2170:14:29.490:14:31.28Enderman-EN
This is a gross hack. Now begins a
#2180:14:31.280:14:35.24Enderman-EN
gross hack hack hack for fixing word perfect.
#2190:14:35.440:14:41.64Enderman-EN
This is a triple hack. This is a this is something really disgusting. This must be horrible. This is a gross hack.
#2200:14:42.040:14:46.44Enderman-EN
This is this is gross. But so is our compiler.
#2210:14:48.400:14:49.87Enderman-EN
This should be a quote.
#2220:14:51.090:14:53.70Enderman-EN
Gross. Everyone in lines the first part.
#2230:14:53.990:14:57.41Enderman-EN
Before we get started
#2240:14:57.430:14:58.80Enderman-EN
Gross hack warning.
#2250:14:59.710:15:02.54Enderman-EN
This is a gross exception to make.
#2260:15:02.830:15:05.05Enderman-EN
So
#2270:15:05.330:15:07.79Enderman-EN
It is possible
#2280:15:09.580:15:14.04Enderman-EN
Gross and not 100% reliable. This is gross and ugly
#2290:15:15.110:15:18.28Enderman-EN
but it's better than allocating virtual memory.
#2300:15:18.540:15:22.40Enderman-EN
The amount of memory used in the following is gross overkill.
#2310:15:22.690:15:26.54Enderman-EN
Really gross. This is pretty gross. This is really gross. We make
#2320:15:26.960:15:30.89Enderman-EN
the gross assumption. This requires a gross
#2330:15:31.520:15:39.41Enderman-EN
enumresourcenamesW call totally gross linear search to determine the namespace index.
#2340:15:40.840:15:43.34Enderman-EN
There's there's so much gross stuff in here.
#2350:15:44.040:15:46.12Enderman-EN
Oh my god. Gross temporary hack.
#2360:15:46.150:15:48.00Enderman-EN
This This looks kind of gross.
#2370:15:48.290:15:50.64Enderman-EN
This end of gross. This is a gross hack.
#2380:15:50.640:15:52.44Enderman-EN
Gross hack. Gross hack. Really gross.
#2390:15:52.560:15:54.41Enderman-EN
Gross hack for NTFS people.
#2400:15:54.770:15:58.57Enderman-EN
{\pos(1944,1684)}This is a bit gross. This is a bit gross. This is gross. But we need to do it
#2410:15:58.940:16:04.36Enderman-EN
{\pos(1920,1696)}else we get tons of warnings. Wow. So much gross stuff in this codebase.
#2420:16:04.520:16:08.38Enderman-EN
Fix horrid nano Luca headbug but leaves memory leak.
#2430:16:08.670:16:12.04Enderman-EN
Oh my god. Just just till I can.
#2440:16:12.610:16:16.31Enderman-EN
Today I learned I think today I learned I can replace this horrid
#2450:16:18.230:16:20.06Enderman-EN
parameter parsing with my own.
#2460:16:20.680:16:26.53Enderman-EN
Yeah
#2470:16:27.960:16:34.13Enderman-EN
The warning. The following is an incredibly horrid hack. I'm ashamed to write code like this.
#2480:16:34.310:16:38.33Enderman-EN
But anyway
#2490:16:38.640:16:42.68Enderman-EN
No matter how you write this
#2500:16:42.960:16:44.64Enderman-EN
Use the horrid row version
#2510:16:46.330:16:48.34Enderman-EN
if available. Terrible hack.
#2520:16:48.810:16:51.22Enderman-EN
Oh my god. So
#2530:16:51.880:16:54.91Enderman-EN
we get tons and tons of hack hacks.
#2540:16:55.130:16:57.66Enderman-EN
If we search for triple hacks
#2550:17:09.450:17:12.12Enderman-EN
oh my god this is a hack overload
#2560:17:18.260:17:20.56Enderman-EN
fix me we get lots of fix me as well
#2570:17:20.980:17:22.59Enderman-EN
all right this should be it for now
#2580:17:22.810:17:26.23Enderman-EN
I can search for funny stuff in such a large code base for days
#2590:17:26.670:17:28.01Enderman-EN
I hope you guys had a laugh
#2600:17:28.640:17:31.52Enderman-EN
Rate the video
#2610:17:31.540:17:34.22Enderman-EN
if you want more content like that. And take care.
#2620:00:14.480:00:19.70Enderman-CN
大家好。在本视频中,我将向大家展示在Windows源代码中发现的一些隐藏宝藏
#2630:00:20.540:00:24.96Enderman-CN
没错,你没听错。Windows的源代码可以在互联网上下载
#2640:00:25.360:00:26.89Enderman-CN
但分享它是违法的
#2650:00:27.550:00:29.05Enderman-CN
怎么回事呢?
#2660:00:29.570:00:33.38Enderman-CN
2020年,Windows XP的源代码在4chan上被泄露了
#2670:00:33.770:00:39.35Enderman-CN
有一群匿名的勇敢者将其编译完成,并确认那确实是Windows XP系统
#2680:00:39.980:00:43.20Enderman-CN
它在某些地方缺少了几个应用程序的源代码
#2690:00:43.580:00:47.19Enderman-CN
但先驱者们填补了空白,并成功推动其运行
#2700:00:47.910:00:51.33Enderman-CN
NCD还敢上传一个演示视频
#2710:00:51.770:00:55.62Enderman-CN
构建过程给他带来了一点小麻烦
#2720:00:56.610:00:58.28Enderman-CN
微软“肘”了他一下
#2730:00:59.280:01:02.08Enderman-CN
于是,人们对构建Windows XP产生了兴趣
#2740:01:02.320:01:05.16Enderman-CN
但我还没看到有人检查源代码
#2750:01:06.470:01:08.70Enderman-CN
这样的话我自愿当那个人
#2760:01:09.490:01:14.22Enderman-CN
因为对于开源软件,实际上没人会费心去审查源代码
#2770:01:14.580:01:16.29Enderman-CN
因为他们有更重要的事要做
#2780:01:17.790:01:19.82Enderman-CN
开始前我们先说清楚(叠个甲)
#2790:01:20.280:01:24.56Enderman-CN
本视频仅供教育和娱乐目的而制作
#2800:01:24.890:01:28.33Enderman-CN
你会学不到很多东西,但有望能开怀一笑
#2810:01:29.160:01:32.63Enderman-CN
于是,我为自己装备了项目范围内的全文搜索功能
#2820:01:33.040:01:36.64Enderman-CN
而我第一个开始寻找的就是脏话
#2830:01:37.490:01:39.24Enderman-CN
我们都曾在编写代码时遇到过困难
#2840:01:39.510:01:43.90Enderman-CN
或许微软员工是想在编码时发泄一下情绪
#2850:01:44.300:01:47.32Enderman-CN
我确信Linux源码中包含粗话
#2860:01:47.690:01:49.12Enderman-CN
事实上,数量还不少
#2870:01:49.650:01:55.28Enderman-CN
有一篇论文分析了代码中脏话数量与某些因素之间的相关性
#2880:01:55.280:01:56.85Enderman-CN
及其代码的质量
#2890:01:57.250:02:01.80Enderman-CN
超级有趣。总之,这大概就是你在缩略图上会看到的那张
#2900:02:02.330:02:06.78Enderman-CN
有一个名为poo.txt的文件,其中包含一个单词
#2910:02:12.180:02:15.24Enderman-CN
高深。我真不知道这个文件为什么存在
#2920:02:15.390:02:17.81Enderman-CN
因为缺乏直接提及它的依据
#2930:02:18.300:02:22.58Enderman-CN
但实际上,你要知道,这是最重要的文件,没有它Windows XP的
#2940:02:22.860:02:25.15Enderman-CN
antiGDI功能就无法运行
#2950:02:25.650:02:31.00Enderman-CN
不是吧。别把乱七八糟的东西放进这个子目录,否则后果自负
#2960:02:31.130:02:33.91Enderman-CN
啧,这也太咄咄逼人了。真见鬼
#2970:02:37.100:02:39.43Enderman-CN
这里有些令人不快的*事情正在发生
#2980:02:39.840:02:43.75Enderman-CN
很明显,这是图形用户界面的代码。当然,它很丑陋
#2990:02:44.380:02:47.88Enderman-CN
我们还得到了一堆词
#3000:02:50.120:02:53.36Enderman-CN
专为脏话过滤器和侮辱性用语过滤器设计
#3010:02:53.380:02:56.99Enderman-CN
这行不通,因为你无法编辑一个刚插入的iframe
#3020:02:57.220:03:03.74Enderman-CN
创建一堆 *,然后插入 iframe 并让它们看起来很漂亮,接着做这个 *
#3030:03:03.860:03:05.05Enderman-CN
这是同一个文件
#3040:03:06.180:03:16.21Enderman-CN
Window * 然后你会得到 W&D 的优点,即在 Win API 中为 GUI 窗口处理消息
#3050:03:16.590:03:19.71Enderman-CN
初始化事件日志以便我们可以记录 *
#3060:03:24.240:03:30.51Enderman-CN
这是个好东西。之所以需要它,是因为com控件简直是坨*
#3070:03:32.640:03:34.24Enderman-CN
是啊,com控件确实
#3080:03:34.240:03:35.79Enderman-CN
挺简陋的。这点我同意
#3090:03:36.850:03:38.67Enderman-CN
BFID_RGB
#3100:03:42.740:03:44.57Enderman-CN
我想,这些破事儿就到此为止吧
#3110:03:44.850:03:46.99Enderman-CN
所以我接下来搜索的词是
#3120:03:48.220:03:50.76Enderman-CN
是的 什么都没有
#3130:03:50.970:03:52.48Enderman-CN
直接匹配
#3140:03:52.870:03:54.52Enderman-CN
没有相关的吗?
#3150:03:54.640:03:56.87Enderman-CN
什么也没有
#3160:03:57.110:03:59.12Enderman-CN
我决定寻找别的词
#3170:03:59.520:04:05.17Enderman-CN
就像这个r开头的词,我注意到他们确实用对了这个词
#3180:04:05.470:04:07.19Enderman-CN
他们在用“弱智”这个词
#3190:04:07.980:04:13.10Enderman-CN
是说他们稍微放缓了线程创建的延迟。所以这里并不是什么脏话
#3200:04:15.480:04:18.14Enderman-CN
这里情况也一样。他们还说
#3210:04:19.730:04:24.75Enderman-CN
正在放慢速度,或者你知道的,就是减少咬合次数以重新发送最后一次咬合
#3220:04:25.340:04:27.58Enderman-CN
他们只是用“弱智”这个词来形容那个
#3230:04:27.950:04:29.91Enderman-CN
其余的匹配项
#3240:04:30.930:04:33.70Enderman-CN
都来自字典
#3250:04:34.540:04:38.24Enderman-CN
他们在R这个词上无可指摘。接着我又去查了hell这个词
#3260:04:41.150:04:43.45Enderman-CN
我们看到了“鬼东西”
#3270:04:43.680:04:48.30Enderman-CN
这看起来像是提交历史记录,其中有一条提交的名称竟然是“搞什么鬼”?
#3280:04:48.500:04:50.85Enderman-CN
在给定的恢复路径中未找到任何内容
#3290:04:51.240:04:55.29Enderman-CN
检查一下szAtomicNew的子目录。这到底是什么鬼东西?
#3300:04:55.720:04:59.58Enderman-CN
正如我们所见,员工间的配合无与伦比
#3310:04:59.890:05:05.61Enderman-CN
但公平地说,要在微软这样的规模上协调行动是相当困难的。所以,你知道的
#3320:05:06.230:05:08.30Enderman-CN
不算太丢人,也不算太尴尬
#3330:05:08.560:05:13.77Enderman-CN
我想关于“hell”的词就这些了。我实在想不出还有什么骂人的衍生词了
#3340:05:14.140:05:17.23Enderman-CN
那“见鬼”呢?搞什么鬼?让他改去
#3350:05:18.230:05:23.13Enderman-CN
这本来不该发生,但如果发生了,他们会给我们大小
#3360:05:23.430:05:26.62Enderman-CN
所以,这到底怎么回事?有些小拼写错误
#3370:05:27.210:05:30.02Enderman-CN
但也没什么特别糟糕
#3380:05:30.630:05:33.70Enderman-CN
哦,不,搞什么鬼?把key也复制一份吧
#3390:05:33.830:05:36.13Enderman-CN
追加到消息。它是十六进制的
#3400:05:36.510:05:38.37Enderman-CN
看看ASCII表,这很有道理
#3410:05:38.830:05:41.78Enderman-CN
循环里或许有个巧妙的方法可以做到这点
#3420:05:42.200:05:44.02Enderman-CN
但搞什么鬼?我懒得动
#3430:05:44.720:05:46.01Enderman-CN
或者是个蠢萌
#3440:05:48.400:05:52.76Enderman-CN
这太可爱了。这个词真的超可爱。我超爱这个词——蠢萌
#3450:05:53.750:05:55.44Enderman-CN
他们正在做一些
#3460:05:57.500:06:00.74Enderman-CN
尽管只是算术运算,他们却在搞一些看起来挺取巧的花样
#3470:06:02.310:06:04.19Enderman-CN
只要我们愿意,总能找到更多该死的方法
#3480:06:04.780:06:06.75Enderman-CN
所以,这该死的库文件到底在哪?
#3490:06:06.960:06:08.38Enderman-CN
有人找不到图书馆了
#3500:06:08.660:06:10.31Enderman-CN
我们到底该怎么处理这个?
#3510:06:10.650:06:13.15Enderman-CN
见鬼,现在这些都无所谓了
#3520:06:13.400:06:17.35Enderman-CN
见鬼,总比什么都没有强。我想我们已经做过这个了,不过管他呢?
#3530:06:17.650:06:21.80Enderman-CN
为什么Windows-On-Windows要用这么奇怪的错误代码?
#3540:06:22.040:06:23.55Enderman-CN
那是个神奇的值
#3550:06:24.340:06:26.66Enderman-CN
看起来是这样。要是我也会气炸的
#3560:06:27.270:06:29.45Enderman-CN
所以,我们得到了更多该死的手段
#3570:06:30.110:06:32.20Enderman-CN
代码库中充满了惊喜
#3580:06:32.810:06:37.15Enderman-CN
所以,我们搞到了不少“黑招”。虽然有点不光彩,但管他呢?
#3590:06:37.540:06:38.67Enderman-CN
这到底是什么意思?
#3600:06:39.260:06:42.57Enderman-CN
一团乱麻。纯粹图个乐子。纯粹图个乐子
#3610:06:42.970:06:46.35Enderman-CN
员工们也玩得不亦乐乎。搞什么鬼?增增减减的
#3620:06:48.390:06:50.00Enderman-CN
这到底是什么选项?
#3630:06:50.240:06:53.06Enderman-CN
直接跳过它。这并非不太可能
#3640:06:53.330:06:56.40Enderman-CN
但这到底是怎么回事?我想关于十六进制的内容就这些了吧
#3650:06:56.810:06:58.94Enderman-CN
汇编文件中有这么一个词
#3660:06:59.300:07:02.24Enderman-CN
空指针赋值
#3670:07:02.370:07:03.22Enderman-CN
蠢货
#3680:07:03.680:07:05.54Enderman-CN
以及一个新行和一个小小的终止符
#3690:07:06.400:07:08.01Enderman-CN
所以,就是这样,这是唯一的
#3700:07:09.210:07:10.07Enderman-CN
蠢货
#3710:07:10.900:07:12.61Enderman-CN
在整个Windows源代码中
#3720:07:13.270:07:17.05Enderman-CN
幸运的是,我在源代码中没有发现任何不当词汇
#3730:07:20.240:07:24.49Enderman-CN
有几个有趣的“宰你”匹配项
#3740:07:24.750:07:29.75Enderman-CN
你敢在这里改动任何东西,Rare就会宰了你
#3750:07:30.150:07:34.72Enderman-CN
圣洁取决于此。91年3月25日
#3760:07:34.940:07:36.19Enderman-CN
非常友好的信息
#3770:07:36.510:07:39.00Enderman-CN
还记得我答应过要最后宰你吗?
#3780:07:39.140:07:40.61Enderman-CN
看来他们没听进去
#3790:07:41.040:07:43.30Enderman-CN
请保持这部分连贯,否则我会宰了你
#3800:07:44.400:07:47.79Enderman-CN
别逼我为了重排这些ID而宰了你
#3810:07:48.090:07:49.83Enderman-CN
Fong 有话要说
#3820:07:50.630:07:52.55Enderman-CN
Ori,我真该宰了你
#3830:07:53.130:07:57.46Enderman-CN
你竟敢不解锁就重复加锁同一个句柄来获取相同的ponder?
#3840:07:57.810:07:58.85Enderman-CN
谋杀
#3850:08:00.110:08:03.44Enderman-CN
这是我找到的这个词唯一出现的地方
#3860:08:05.070:08:10.27Enderman-CN
保持乐观,闭上嘴巴,开心快乐,诸如此类
#3870:08:10.710:08:15.12Enderman-CN
请注意,以下所有定义仅为让编译器停止报错而设
#3880:08:22.910:08:25.57Enderman-CN
就为了让编译器闭嘴。让编译器闭嘴
#3890:08:27.530:08:33.22Enderman-CN
让它闭嘴。让编译器闭嘴。让编译器闭嘴。让编译器闭嘴以便让编译器闭嘴
#3900:08:34.000:08:36.94Enderman-CN
从而让prefast停止对alloc a使用的抱怨
#3910:08:37.330:08:39.83Enderman-CN
闭嘴吧,FM合成器
#3920:08:40.480:08:42.56Enderman-CN
闭嘴,编译器。闭嘴,编译器
#3930:08:42.780:08:49.96Enderman-CN
微软的编译器相当粗糙。我还用了几条编译指令来屏蔽那些不必要的警告提示
#3940:08:50.210:08:51.18Enderman-CN
闭嘴,编译器
#3950:08:51.310:08:54.66Enderman-CN
是啊,这是这个代码库中非常常见的问题
#3960:08:55.040:08:56.92Enderman-CN
他们不喜欢这个编译器
#3970:08:56.960:08:58.88Enderman-CN
用警告之类的东西烦人
#3980:08:58.880:09:00.07Enderman-CN
所以他们必须让它闭嘴
#3990:09:00.490:09:06.12Enderman-CN
闭嘴吧。我完全不知道5的标签是干嘛用的。我也不明白我们为什么要这么做
#4000:09:06.480:09:11.29Enderman-CN
我不知道为什么不是1
#4010:09:11.560:09:13.85Enderman-CN
我完全不明白这个例行程序是做什么用的
#4020:09:14.360:09:16.35Enderman-CN
我完全不明白这个例行程序是做什么用的
#4030:09:16.620:09:19.48Enderman-CN
我真不知道是谁想出了这个绝妙的主意
#4040:09:20.530:09:21.99Enderman-CN
但我们必须接受它
#4050:09:22.450:09:30.39Enderman-CN
所以,基础啊,这一点非常强大。如果缓存没有启用,那我压根不知道 VDL 是什么
#4060:09:30.750:09:33.12Enderman-CN
我完全不知道Windows 95会做出什么来
#4070:09:33.410:09:37.33Enderman-CN
目前我无法将它们做得比现在更好了
#4080:09:37.590:09:40.13Enderman-CN
管他呢?领导高兴就好
#4090:09:42.000:09:46.04Enderman-CN
天啊,这也太惊艳了。三十年过去了
#4100:09:46.320:09:50.12Enderman-CN
编程行业却依然一成不变
#4110:09:50.280:09:54.72Enderman-CN
我完全不清楚这到底是
#4120:09:54.720:09:59.71Enderman-CN
马虎大意还是真有这么个要求,也压根不想费神去琢磨明白
#4130:10:00.110:10:01.97Enderman-CN
我不知道这个的起源
#4140:10:02.480:10:04.80Enderman-CN
也不清楚它现在是否还重要
#4150:10:05.090:10:09.78Enderman-CN
保留它以防万一出现棘手的兼容性问题,总归不会有什么坏处
#4160:10:10.260:10:13.53Enderman-CN
为什么它必须是九个字节长?我完全不知道
#4170:10:13.590:10:16.94Enderman-CN
这个call需要做些准备,但我没时间去做
#4180:10:17.350:10:21.61Enderman-CN
我完全搞不懂这里发生了什么。不过眼下,我还是先把这个异常情况记下来吧
#4190:10:21.910:10:25.67Enderman-CN
我完全不明白我们为什么要做这个。这段代码是Ralph写的
#4200:10:25.960:10:31.92Enderman-CN
我不知道错误代码可能是什么。等我们查出来后记在这里
#4210:10:32.080:10:35.23Enderman-CN
我完全不明白为什么这行代码放这儿就不管用了
#4220:10:35.490:10:37.52Enderman-CN
抱歉,我完全不知道该说什么
#4230:10:37.810:10:40.63Enderman-CN
我完全不清楚这个范围有多少分贝
#4240:10:41.330:10:45.09Enderman-CN
我不知道为什么关闭这个key后会失败,但事实就是如此
#4250:10:45.250:10:48.12Enderman-CN
我也不知道该写些什么。希望这能行
#4260:10:51.380:10:53.82Enderman-CN
我完全不明白那条评论是什么意思
#4270:10:54.170:10:57.19Enderman-CN
Raymond Chen,你好
#4280:10:57.220:10:58.18Enderman-CN
你在看这个视频吧
#4290:10:59.440:11:02.82Enderman-CN
我时不时会看你的博客,超级有趣
#4300:11:03.030:11:04.82Enderman-CN
你可以看看这个老生常谈的新鲜事
#4310:11:05.440:11:08.87Enderman-CN
Raymond Chen是个超级靠谱的家伙
#4320:11:10.010:11:12.26Enderman-CN
我完全不明白这条评论是什么意思
#4330:11:14.230:11:18.36Enderman-CN
这个构造函数未被使用。我甚至不知道它现在是否还能工作
#4340:11:18.640:11:24.02Enderman-CN
然后我查了一下厌恶情绪出现的次数
#4350:11:25.040:11:30.68Enderman-CN
相当多。完全恶心的手段,目的是在编辑控件
#4360:11:31.390:11:34.80Enderman-CN
介入前捕获VK回车键。检查是否需要为link.exe实现一个
#4370:11:34.800:11:43.36Enderman-CN
绝对恶心、令人作呕到极点的应用程序技巧 MSC 1.5
#4380:11:43.950:11:50.11Enderman-CN
这个宏本应接收参数,但我们被迫以这种令人厌恶的巧妙方式实现
#4390:11:50.140:11:52.99Enderman-CN
皆因begin的无括号定义所限
#4400:11:54.670:11:57.76Enderman-CN
通过索引获取这种信息真是令人作呕的方式
#4410:11:58.050:12:03.92Enderman-CN
这真让人恶心。但GDI +必须在同一线程上初始化和关闭
#4420:12:04.380:12:07.06Enderman-CN
因此,我们必须专门为此创建一个线程并让它常驻
#4430:12:07.370:12:12.51Enderman-CN
以确保这就是我们执行启动和关闭操作的线程
#4440:12:12.900:12:15.04Enderman-CN
恶心至极
#4450:12:15.860:12:18.64Enderman-CN
恶心。有个解释在那儿
#4460:12:18.670:12:23.93Enderman-CN
有一段完整的解释,括号里写着“恶心”。
#4470:12:24.300:12:26.40Enderman-CN
又一个恶心的凑合方案
#4480:12:26.640:12:32.34Enderman-CN
但能用。这里有个又丑又恶心的老巫婆在让代码感知结构
#4490:12:32.480:12:38.58Enderman-CN
这真让人恶心。我们被迫使用这些恶心的伎俩。那“恶心”怎么说呢?
#4500:12:38.680:12:44.67Enderman-CN
真的吗?还有更糟的。在我们开始之前,得先检查一些非常恶心的事情
#4510:12:44.870:12:50.52Enderman-CN
这确实很恶心,但在没有调试器的零售版构建中,EFI会彻底失控
#4520:12:51.210:12:56.57Enderman-CN
除非我们降低网络上的交易速度。因此,在UDP操作后,小憩片刻
#4530:12:56.960:13:00.26Enderman-CN
天哪。是啊,这也太恶心了
#4540:13:00.290:13:04.56Enderman-CN
这招虽然有点糙,但确实解决了内存仲裁器的泄漏问题
#4550:13:05.690:13:12.49Enderman-CN
恶心吧?这些卡标称32mb内存需求,实际却能解码64mb数据
#4560:13:13.190:13:14.52Enderman-CN
是啊,真恶心
#4570:13:14.720:13:18.81Enderman-CN
天啊,居然还有专门为“该死”而准备的完整预处理宏。哇哦
#4580:13:18.900:13:24.45Enderman-CN
好吧,这看起来有点恶心,但把上下部分改成LC似乎稍微高效一些
#4590:13:24.890:13:25.69Enderman-CN
PLJ.
#4600:13:25.920:13:26.81Enderman-CN
我不知道那是什么意思
#4610:13:26.900:13:28.53Enderman-CN
恶心
#4620:13:28.560:13:37.10Enderman-CN
如果我们在范围内无法翻译,那就随它去吧。这很可能是因为BIOS有bug
#4630:13:37.320:13:41.01Enderman-CN
是的,这确实很恶心。而且没错,它破坏了过滤模式
#4640:13:41.230:13:49.64Enderman-CN
正确做法是让卡总线通过后门在此处通行,同时保持其在FDO层级的状态
#4650:13:50.040:13:53.93Enderman-CN
是的,这是个相当粗暴的临时解决方案。好吧,这确实有点糙
#4660:13:55.230:13:57.04Enderman-CN
但这确实有点恶心,不过这就是当今
#4670:13:57.040:14:03.26Enderman-CN
x86机器的现状。说到底,我们这样做仅仅是为了向后兼容——真够恶心的
#4680:14:03.440:14:07.15Enderman-CN
这真恶心。我们得做些极其恶心的事
#4690:14:07.780:14:12.19Enderman-CN
这有点恶心。我们就打算这么恶心着直到工作完成为止
#4700:14:12.410:14:16.78Enderman-CN
此标志是为批处理中引入的一个粗糙临时方案而添加
#4710:14:17.040:14:21.96Enderman-CN
这里有一个粗糙的临时解决方案,用于绕过二级缓存中的串行设计缺陷
#4720:14:22.670:14:28.52Enderman-CN
恶心结束。别名内容因文件过度膨胀已移除
#4730:14:29.490:14:31.28Enderman-CN
这是个粗糙的临时方案
#4740:14:31.280:14:35.24Enderman-CN
现在开始一连串粗糙的修修补补,就为搞定Word Perfect的问题
#4750:14:35.440:14:41.64Enderman-CN
这是个三重恶心。这真是令人作呕的东西。这一定很可怕。这是个极其恶心的伎俩
#4760:14:42.040:14:46.44Enderman-CN
这真是够恶心的。但我们的编译器也一样
#4770:14:48.400:14:49.87Enderman-CN
这应该是一句引语
#4780:14:51.090:14:53.70Enderman-CN
真恶心。排队的每个人都挤在前半部分
#4790:14:53.990:14:57.41Enderman-CN
在开始之前,我们得检查一下有没有什么特别恶心人的东西
#4800:14:57.430:14:58.80Enderman-CN
恶心警告
#4810:14:59.710:15:02.54Enderman-CN
这是一个极其例外的做法
#4820:15:02.830:15:05.05Enderman-CN
所以,MGR部分确实应该修复
#4830:15:05.330:15:07.79Enderman-CN
这是可能的,但相当恶心
#4840:15:09.580:15:14.04Enderman-CN
粗鄙且并非百分百可靠。这既粗鄙又丑陋
#4850:15:15.110:15:18.28Enderman-CN
但这总比分配虚拟内存要好
#4860:15:18.540:15:22.40Enderman-CN
以下使用的内存量实在是过度浪费了
#4870:15:22.690:15:26.54Enderman-CN
真恶心。这相当恶心。这真的很恶心。我们做了个
#4880:15:26.960:15:30.89Enderman-CN
粗略的假设。这需要一个
#4890:15:31.520:15:39.41Enderman-CN
粗糙的enumresourcenamesW调用,通过完全粗暴的线性搜索来确定命名空间索引
#4900:15:40.840:15:43.34Enderman-CN
这里面有太多恶心东西了
#4910:15:44.040:15:46.12Enderman-CN
天啊。这临时凑合的招数真恶心
#4920:15:46.150:15:48.00Enderman-CN
这看起来有点恶心
#4930:15:48.290:15:50.64Enderman-CN
恶心结束了,真恶心
#4940:15:50.640:15:52.44Enderman-CN
恶心,恶心,真恶心
#4950:15:52.560:15:54.41Enderman-CN
NTFS用户的粗暴技巧
#4960:15:54.770:15:58.57Enderman-CN
{\pos(1980,1592)}这有点恶心。这有点恶心。这很恶心。但我们必须这么做
#4970:15:56.630:15:59.63Enderman-CN-C
{\pos(2324,1812)}*在X上关注enderman!
#4980:15:58.940:16:04.36Enderman-CN
{\pos(1920,1604)}否则我们会收到一堆警告。哇,这代码库里有太多糟糕的东西了
#4990:16:04.520:16:08.38Enderman-CN
修复了可怕的nano Luca头部bug,但遗留了内存泄漏问题
#5000:16:08.670:16:12.04Enderman-CN
天啊。只要我能坚持
#5010:16:12.610:16:16.31Enderman-CN
今天我学到,我可以用自己的方式
#5020:16:18.230:16:20.06Enderman-CN
替换掉这糟糕的参数解析
#5030:16:20.680:16:26.53Enderman-CN
是啊,最后那个选项恐怖到没法讨论。估计他们忘了在这儿加个“O”吧
#5040:16:27.960:16:34.13Enderman-CN
警告。以下是一段极其糟糕的代码。我羞于写出这样的代码
#5050:16:34.310:16:38.33Enderman-CN
但不管怎样,这个函数简直糟透了
#5060:16:38.640:16:42.68Enderman-CN
无论你怎么写,编译器都会生成糟糕的代码
#5070:16:42.960:16:44.64Enderman-CN
使用糟糕的行版本
#5080:16:46.330:16:48.34Enderman-CN
如果可用。糟糕的临时方案
#5090:16:48.810:16:51.22Enderman-CN
如果你搜索hacks
#5100:16:51.880:16:54.91Enderman-CN
就会得到堆积如山的hack hacks
#5110:16:55.130:16:57.66Enderman-CN
如果我们搜索三重hacks,还能发现更多
#5120:17:02.680:17:08.91Enderman-CN
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
#5130:17:09.450:17:12.12Enderman-CN
简直是hack过头了
#5140:17:18.260:17:20.56Enderman-CN
修复我,我们也收到很多“修复我”
#5150:17:20.980:17:22.59Enderman-CN
好的,目前就这样吧
#5160:17:22.810:17:26.23Enderman-CN
我能在这么庞大的代码库里连续好几天搜寻有趣的东西
#5170:17:26.670:17:28.01Enderman-CN
希望大家乐呵呵
#5180:17:28.640:17:31.52Enderman-CN
给视频评价、订阅,并在下方评论区告诉我
#5190:17:31.540:17:34.22Enderman-CN
如果你想要更多类似的内容。保重
#5200:17:23.880:17:27.88Enderman-CN
{\fad(200,200)\pos(1909.333,220)}原标题:The Hidden Gems in the Windows Source Code 原作者:Enderman
#5210:17:28.180:17:32.18Enderman-CN
{\fad(200,200)\pos(1909.333,220)}原视频上传日期:2025年5月15日
#5220:17:34.230:17:54.18Enderman-CN-C
{\fad(200,200)\fscx190\fscy189\pos(1939.999,740.666)}在 Youtube 上关注
#5230:17:34.960:17:38.96Enderman-CN-C
{\fad(200,200)\pos(1920,1054.667)}翻译/压制/字幕制作:HAF半个水果
#5240:17:39.260:17:44.26Enderman-CN-C
{\fad(200,200)\pos(1914.666,1113.333)}翻译质量权威评价:原来25年就有小拉即用机翻糊弄人了\N
\N
向所有字幕制作及相关人员道一声辛苦了 (*ˊᗜˋ*)/ᵗᑋᵃᐢᵏ ᵞᵒᵘ*\N
感谢字幕组的默默耕耘,你们的每一行字都能让更多人能够跨越语言障碍,享受精彩的内容
#5250:17:44.590:17:48.59Enderman-CN-C
{\fad(200,200)\pos(1973.333,1052)}字幕制作不易,喜欢的话支持一下我吧!